/**
 * 
 */
package cn.biplam.front.html;

import cn.biplam.common.wrapper.ErrorMessage;
import cn.biplam.front.html.base.HtmlWindow;

/**
 * Html按钮	
 * @author XiaoRuxing
 * @version 1.0
 */
public final class HtmlButton extends HtmlWindow {
	
	private String text=null;
	
	public HtmlButton(){}

	/**
	 * 构造方法		传入对象的页面ID初始化
	 * @param ID	对象ID
	 */
	public HtmlButton(String ID){
		super(ID);
	}

	/**
	 * 构造方法		传入对象的页面ID和文本初始化
	 * @param ID	对象ID
	 * @param cssID	
	 */
	public HtmlButton(String ID,String cssID){
		super(ID,cssID);
	}
	
	/**
	 * 构造方法 传入对象的页面ID、CSSID和文本初始化
	 * @param ID
	 * @param cssID
	 * @param text
	 */
	public HtmlButton(String ID,String cssID,String text){
		super(ID,cssID);
		this.text=text;
	}
	
	/**
	 * 返回实现类自定义的位于对象起始和结束标签内的 HTML
	 * @param sb
	 * @throws ErrorMessage
	 */
	protected void _getContent(StringBuilder sb) throws ErrorMessage {
		if(this.text!=null){
			sb.append(this.text);
		}
	}

	/**
	 * 复制对象
	 * @return	创建的新对象实例
	 * @throws ErrorMessage
	 */
	public HtmlWindow copy() throws ErrorMessage {
		HtmlButton button=new HtmlButton(this.getID(),this.getCssID());
		button.text=this.text;
		super._copy(button);
		return button;
	}
	
	/**
	 * 获取对象及其内容的 HTML 形式(不包含客户端绑定脚本)
	 * @param sb	传入的写缓冲区
	 * @throws ErrorMessage
	 */
	public void getHtml(StringBuilder sb) throws ErrorMessage {
		sb.append("<SPAN ");
		super.writeTagSetting(sb);
		sb.append(">");
		this.getContent(sb);
		sb.append("</SPAN>\n");
	}

	/**
	 * 返回内容长度(byte数)
	 * @return	字节数
	 */
	public int length(){
		return text.toString().getBytes().length;
	}

	/**
	 * 替换对象内置文本内容
	 * @param text
	 */
	public void replace(String text){
		this.text=text;
	}
	
}
